Scanner and printer profiling system

ABSTRACT

An improved color correction system and more specifically, a color profiling system for a printer and scanner. Highly accurate device independent printer profiles are generated using a scanner and processing means. The process utilizes the simultaneous scanning of a reference target and a print target to produce a scanner profile. Uncompensated printer profile is developed using the scanner profile and compensation transforms convert the uncompensated printer profile into the printer profile

RELATED APPLICATIONS

[0001] This application is a divisional of U.S. application Ser. No.09/475,576, filed Jan. 5, 2000 and is herein incorporated in itsentirety by reference.

FIELD OF THE INVENTION

[0002] The present invention relates most generally to color correctionof computer peripheral devices and more particularly to a colorprofiling system for a printer and scanner.

BACKGROUND OF THE INVENTION

[0003] Color is defined as the perceptual result of light in the visibleregion of the spectrum. The human retina has three types of colorphotoreceptor cells for illumination therefore it is possible to definecolor using only three numerical components.

[0004] The Commission Internationale de L'Éclairage (CIE) created astandardized system for representing color illuminations using threenumerical components to represent the mathematical coordinates of colorspace. The colors produced by reflective systems are a function not onlyof the colorants but also of the ambient illumination that requiresfurther spectral matching. The most familiar color systems include CIEXYZ, CIE xyY, CIE L*u*v* and CIE L*a*b*.

[0005] The CIE system is based on the description of color as luminancecomponent Y and spectral weighting curves components X and Z. Thespectral weighting curves for X and Z were standardized by the CIE basedon statistics from experiments involving human observers. The magnitudesof the XYZ components are proportional to physical energy, but theirspectral composition corresponds to the color matching characteristicsof human vision.

[0006] Most devices employ a device-dependent color-coordinate system tospecify the colors, and there are several different systems in themarket. The coordinate system is defined in a color space that maps thecolor coordinates to the color mechanism used by the device. Color spacerefers to an N-dimensional space in which each point in the spacecorresponds to a color. The cyan (C), magenta (M), yellow (Y) and black(K) (CMYK) color space is commonly used for color printers, where eachpoint in the CMYK color space corresponds to a color produced using aformula for the CMYK colorants. The color space could be representedsolely by CMY, but black is added as a colorant for print matter forseveral reasons. Printing black by overlaying cyan, yellow and magentaink is expensive and time-consuming, and the edges of the lettering tendto blur. The printing of three ink layers to produce black also causesthe printed paper to become wet requiring more time to dry.

[0007] The red, green and blue (RGB) system is a color space system thatis complementary to the CMYK color space. The RGB system is athree-dimensional color space wherein each point in the color space isformed by some combination of RGB colorants. The RGB system is typicallyused for computer monitors, TV screens and scanners—illuminatingdevices.

[0008] The term color gamut is used to refer to a range of colors thatcan be produced within a color space by a particular device from a setof colorants. The color gamut of a device corresponds to the visiblecolors that can possibly be produced by the device.

[0009] A digitized color image is represented as an array of pixels,wherein each pixel contains numerical components that define a color.The three components are required to represent an image, and printingnecessitates a fourth component, namely black. Color printers and colorcopy machines typically use three or four colorants, such as CMYK toproduce the color image. The combination mix and density of thecolorants produce a wide array of shades and colors.

[0010] While the three numerical values for digitized images could beprovided by a color specification system, the color coding systemsrequire faster processing. Several other systems have developed forimage coding, including linear RGB, nonlinear R′G′B′, nonlinear CMY,nonlinear CMYK, and derivatives of nonlinear R′G′B′ such as Y′CBCR. RGBvalues can be transformed to and from the CIE XYZ values by athree-by-three matrix transform.

[0011] A scanner is used for converting print mediums such as pictures,artwork, documents, transparencies, and photographs into an electronicformat. The scanner captures an image by measuring colors reflected fromor transmitted through an image at many points and assigns numericalvalues to the colors at those points. Normally, the scanned image isrepresented as digital data, called pixels, in a Red-Green-Blue (RGB)representation. The pixels are arranged into a table of rows andcolumns, and contain information about the image such as the colorinformation for a particular pixel defined as some formula of theprimary colors R-G-B. Some scanners convert the RGB values to CMYKvalues.

[0012] The reproduction of color information from multiple devices andvarying environments is a common occurrence in the industry. Coloredworks are transferred among variety of peripheral devices and the colorinformation processing systems within the various systems seek to ensurethe accuracy of the original work. For example, a computer with a colormonitor can interact with a colored printer, a scanner, digital camera,color copy machine, color facsimile and various other devices. As thecolor data passes from one medium to another, digital processingattempts to maintain a visual match within the capabilities of thedevices.

[0013] Advances in technology and computing means have made colorreproduction systems available to the general public. Many desktoppublishing systems employ hardware and software that are affordable tousers that need to produce quality color work products. Unfortunately,the concept of ‘What you see is what you get’ is normally lacking, andit is not uncommon to see the desired image on the monitor but produce aprint product that lacks the quality characteristics desired.

[0014] Colors produced by two different devices based on the same inputwill differ, in part because of distortion of the signals which occurdue to nonlinear response characteristics of the electronics of thedevices and the method of selecting a color within a device color gamut.An input signal representing a particular color provided to twodifferent devices typically results in the devices producing twodifferent colors. This is true even when the input signal represents acolor within the color gamuts of both of devices.

[0015] In order to accomplish accurate color transfer, the individualdevices employ color calibration techniques. Calibration is necessary toset the color response of the color reproduction devices. The process ofderiving a transform by comparing the device output to some referenceoutput and generating a lookup table is called system color calibration.A transform derived for a particular scanner-printer combination isreferred to as a closed system and the process is called closed systemcolor calibration.

[0016] The purpose of the calibration is to account for the colordifferences. The color differences actually refer to numericaldifferences between the color specifications and more specificallyrefers to the perception of color differences in XYZ or RGB. Perceptualuniformity concerns numerical differences that correspond to colordifferences at the threshold of perceptibility. A perceptually uniformsystem is one where a small change to a component value is equallyperceptible across the entire range. XYZ and RGB systems are notperceptually uniform and are actually highly non-uniform. In order totransform XYZ into a uniform standard, two systems developed, L*u*v* andL*a*b*, also written CIELUV and CIELAB. L*u*v* and L*a*b* improveperceptual non-uniformity but require highly complex computations toaccommodate real-time display.

[0017] In most cases, an initial factory calibration creates calibrationtables that are used by the digital processing schemes to make the colorreproduction devices conform to standards and to compensate for driftand other changes.

[0018] Various instruments and methods are used to calibrate devices forcolor reproduction, including densitometers and calorimeters. Adensitometer measures the density of ink on a print patch in each ofCMYK colorants. The densities are then compared to a scale of desireddensities to produce calibration curves. The data from the calibrationcurves is used to correct the device so that it more closely resemblesthe scale data.

[0019] A calorimeter measures CIE values of color on a scale of printedpatches in each of the CMYK print colorants. The measured CIE values arethen compared with a corresponding scale of desired values to obtaincalibration curves, which correct the device so that is more closelyresembles the scale data.

[0020] In the field of desk top publishing, it is common to have ascanner device as part of the office equipment rather than adensitometer or colorimeter. It is therefore convenient to use thescanner to calibrate the printer. The state of the art describes using ascanner as a calibrating device, wherein the scanner scans a printtarget and measures the densities of ink deposited on the target. Thesystem measures the densities or colorimetric values of the colorsamples generated by a printing device.

[0021] Although the scanner is more convenient that using the othercalibration devices, the quality is usually lacking. Scanners operate ona linear sensitivity scale, not a logarithmic density scale. Based onscanner deficiencies, the tonal and spectral scanner outputs vary evenwhen measuring the same colored object. Thus, not only would similarscanners produce different results, but the same scanner suffers fromdegradation of performance over time.

[0022] To accomplish calibration between a printer and scanner, atransform is used in a digital image processor that maps the colorsignals of the scanner to the printer color signals so that the colorreproduction system reproduces the colors present of the originalimages. Often the transform is implemented by employing a threedimensional lookup table (LUT).

[0023] One method to calibrate a color reproduction system includesusing the color scanner, a processor, and a color printer. This requirestransforming the color space environments. A first color transform isused to convert the scanner color signals, such as RGB signals, intocolor signals in a device independent color space. The second transformis used to convert color signals from the device independent color spaceto printer color signals such as CMYK signals.

[0024] It is possible to combine the two transforms into one functionimplemented by the processor that directly converts scanner colorsignals into printer color signals. The transformations are typicallyimplemented by storing calibration values in a three or four-dimensionalLUT and using a linear interpolation method to interpolate betweenvalues in the lookup table.

[0025] A typical printer and scanner calibration involves printing a setof color patches on the printer, measuring the color patches using anoptical instrument and using a mathematical method such as regression toderive the printer transform based on the measured data. The calibrationcontinues by scanning a set of test patterns, measuring the testpatterns using an optical instrument and employing a mathematical methodsuch as regression to then derive the scanner transform.

[0026] There are ways to decrease the time required to calibrate,including using a smaller number of sample points. This creates a lookuptable that is much smaller and easier to search during the mathematicalmanipulation, however the accuracy during interpolation is much lower.

[0027] Another prior art approach is to sample a cube in the printercolor space. For example, an RGB cube in the printer color space may beuniformly sampled along the R, G and B axis to provide a discrete set ofprinter color coordinates which are stored in a computer. These colorcoordinates are provided to a printer that prints color patchescorresponding to the specified color coordinates. The printed colorpatches are subsequently fed to a scanner and scanned to provide a setof scanner color coordinates that is a subset of the entire space ofcolor coordinates of the scanner. Thus, a direct correspondence isobtained between the set of stored printer color coordinates and the setof scanned color coordinates.

[0028] The terms calibration, characterization and profiling aresometimes incorrectly used interchangeably. For purposes of thisapplication, the terms are distinguished herein. Calibration refers tothe process of deriving a transform by comparing a device output to somereference output and generating a lookup table. This is a devicedependent process. Calibrating a device returns the device to somenormalized, standard, and predictable state. Therefore, calibrating amonitor, a scanner or a printer alters the behavior of that device.

[0029] Profiling, also called characterizing or describing is really adescription of the color capabilities of the device. Profiling measuresthe device properties and transforms the properties into some usableform as part of a color management system. Profiling does not change thebehavior of that device as with calibration, but rather compliments thecalibration. However, it does not preclude the need to calibrateindividual devices to ensure that the process that created thecharacterization remains consistent.

[0030] Because some coloration inaccuracies are introduced whenswitching between different color spaces, and device profiling is usefulto correct such inaccuracies. Device profiling measures the inaccuraciesand corrects them in a device-independent color space (LAB). By workingin the device independent LAB environment, improved color conversionsbetween devices is possible.

[0031] To generate a profile, software is used to determine the device'sfull color range capabilities. The gamut of the device is determined bymeasuring the colorimetric values for a set of known color patches ortargets. The measured data is then used to generate a custom profile forthe device. The profiles are then applied to an image data to compensatefor any transformation inaccuracies.

[0032] The International Color Consortium (ICC) created a standardizedsystem for describing the color-rendering capabilities of any device.The ICC profile defines the gamut of the device, and a measure of thecolor distortion. The ICC profile actually has two components, the firstelement contains hardware data about the device, and the second elementis the colorimetric device characterization data that defines the mannerin which the device establishes color.

[0033] The profiles are used in conjunction with the othercolor-management engine and the application programs that use theprofiles. The generic profiles provided by the manufacturer are oftenbased on a perfectly calibrated device, and do not generally provide theaccuracy required in modern systems. Therefore, custom profiles areutilized to enhance the factory profiles and provide more accurate colorreproductions.

[0034] The purpose of profiling is to accurately define the reproducibleand repeatable gamut of a device. This is accomplished by using areference target on the device and measuring the device's reproductionvalues. Software is used to build a transform that maps scanner colorspace values to device independent color values. The transform istypically built by using a mathematical technique such as the leastsquares algorithm with the reference data and measured data.

[0035] A typical scanner profiling process involves scanning a referencetarget that has numerous color patches. IT8 is one such referencestandard. Software is used to compare the color reference values thataccompany the target with the measured values. The entire process is acomparison of reference data and measured data.

[0036] Some profiling packages only profile a scanner's raw color spacewhile others create a corrective profile, wherein a scanner driver usesthe ICC profiles of the device to incorporate the physical limitationsof the device in the processing.

[0037] Printers are more difficult and time-consuming to profile becausethey do not emit light and require another device, properly calibrated,to measure the color data. The printer prints a target that contains thecolor patches. The printout is measured by a color measuring device,such as a spectrophotometer, and software uses the measured values tobuild a transform that maps device independent colors to the printer'scolor space. Various factors affect the printer color values, includingpaper stock, ink, temperature, and pressure, so other variable andcalculations are required for processing.

[0038] The typical custom profile is produced by comparing measuredcolor values against reference values. For example, a scanner profile isproduced by scanning a color target, wherein the profiling applicationconverts the scanned data into device independent values. The deviceindependent values are compared to the CIE values for the referencetarget, and a custom profile is created to correct any deficiencies. Thereference target is normally the industry-standard IT8 target thatcontains 264 color patches plus 24 shades of gray.

[0039] Printers are more difficult and time-consuming to profile becausethey do not emit light and require another device, properly calibrated,to measure the color data. The profiling software compares the measureddata to the target values and produces the correction data. By comparingthe measured colors with the color values, a custom profile isdeveloped.

[0040] A color management system comprises interconnected devices suchas a scanner, monitor, printer, and computer, with a softwareapplication that handles the color reproduction between the applicationand various color devices. The system interacts with the processingmeans and the memory means of the system to control the devices, processtransformations, and store data. The software performs the colortransformations to exchange accurate color between diverse devices, invarious color coding systems including RGB, CMYK and CIEL*a*b*. Intheory, the color management system evaluates capabilities of the systemand devices and determines the appropriate color device and color space.However present systems have significant difficulties implementing sucha system in a commercially feasible manner.

[0041] There have been various attempts at creating cost-effective andquality color calibration systems that address the aforementionedproblems. One such system describes a closed loop system that calibratesa scanner to a printer. The calibration profile created by the systemresides in the scan driver so the scanned images are pre-calibrated forthe specified printer. The calibration profile is created by thefollowing steps:

[0042] 1. The scan driver creates an image with color patches.

[0043] 2. This image is passed through the printer path until the colorpatches are printed.

[0044] 3. These color patches are scanned by the scanner.

[0045] 4. The system builds a profile that maps desired RGB values toRGB values that when printed will actually produce the desired RGBvalues.

[0046] 5. This profile is then applied to all images scanned for thedesired printer.

[0047] This calibration scheme has the disadvantage of forcing the userto work with images that are calibrated for a particular printer. Forcorrect screen viewing the images must be translated from printer spaceto monitor space. Images that were-scanned for one printer will not workwith another printer, as the data is device dependent. Even imagesscanned for the same printer will become incompatible if the paper type,ink type, or some other variable is changed.

[0048] There are additional problems with the system. The scanner is notprofiled, and as known in the industry, quality results require that thescanner be properly profiled. Also, the color space of the printer isnot RGB, and printers often have poor internal profiles that result inthe printing of RGB images that look very poor on the screen.

[0049] The present invention is distinguishable because it profiles boththe scanner and the printer individually and is not truly a closed loopsystem. The present system produces two profiles: a scanner profile anda printer profile. Both profiles translate to and from a deviceindependent color space, thus images from the scanner are independent ofany device that is attached to the printer and images that go to theprinter are independent of the printer. Images from the scanner can beprinted on many different printers and images from many sources can beprinted on the printer.

[0050] Another system known in the art describes a closed loop systemwhere the scanner output is mapped to a printer input. The primarydifference is in the implementation details, but suffers from the sameinherent problems as the other prior system. The steps of the thissystem include:

[0051] 1. Determine the relationship between equal printer color signalsand averaged scanner color signals.

[0052] 2. Produce a set of color patches uniformly distributed inscanner color space on the printer.

[0053] 3. Scan the patches with the scanner.

[0054] 4. Produce a look-up table from printer to scanner.

[0055] 5. Invert the look-up table to go from scanner to printer.

[0056] Another existing system uses a scanner and printer to calibratethe path from the scanner to the printer. It includes non-linearinterpolation and gamut mapping techniques. As with the other priorsystems, it does not solve the problem of accurately calibrating thescanner that would likely result in color reproduction problems.

[0057] A further color matching system known in the art uses a deviceindependent color space to map colors from one device to another underdifferent viewing conditions. Similar systems are common and supportedby the industry standard ICC specification.

[0058] Another system that calibrates a printer by using the scanner asa densitometer is known in the art. The scanner is used as adensitomiter by scanning an image with known densities and building alook-up table that translates RGB values to density. Patches composed ofseparate inks at different levels are printed and measured by thescanner. These measurements are then used to calibrate the printer. Thissystem does not actually characterize a printer but uses the scanner toreturn a printer to a known state so a pre-built table will functioncorrectly—a calibration function.

[0059] In distinction, the system of the present invention uses the datafrom the scanner to actually build the types of tables that accuratelyreproduce the color values. A simultaneous scanning method is used,wherein the printed calibration image and the gray scale test strip arescanned simultaneously to overcome scan to scan error and to reduce thenumber of user steps in the calibration process. While the patchesmeasured by the prior system can only be used to re-calibrate thedevices, the present invention techniques can fully characterize thedevices.

[0060] Yet a further system known in the art is a method of adjustingthe calibrations of a scanner and a printer by scanning in calibrationimages and comparing the scanned data to previous data. In this knownembodiment, the system first scans a calibration target with known colorvalues, compares the scanned values with the known values and producescalibration data. Then it prints calibration patches, scans the patches,and compares the scanned patches to previously printed patches andproduces calibration data. Finally, it combines the two sets ofcalibration data to produce data that calibrates both the printer andscanner. A difference between this system and the present invention isthat the prior system compares calibration data when calibrating aprinter. The present system produces a printer profile by understandinghow the printer produces a particular color and then building a tablethat allows that color to be printed. The prior system also has nosimultaneous scanning or compensation table.

[0061] There are some commercial products have tried to alleviate theaforementioned problems. One company displayed color calibration systemthat uses the combination of a color measurement device such as aspectrophotometer and a scanner to calibrate a printer. With thissystem, color patches were first printed with a printer. A very smallnumber of the patches were then read with the measurement device andthen the entire set of patches was read with the scanner. The patchesthat were read with the measurement device and the scanner was used tocalibrate the scanner and the calibration of the scanner was then usedto modify the entire patch set so that a printer calibration could bemade. This system has the advantage of calibrating the scanner andprinter with just one scan and also calibrating the scanner to theprinter. However, the system also requires the use of an expensivemeasurement device and has the disadvantage of calibrating the scanneronly to the printer, not with more common photographic materials orreflective works.

[0062] Providing efficient and accurate color reproduction remains aproblem because of numerous difficulties described herein. What isneeded is a practical and simple means to produce a printer profile.There should be a color reproduction system that provides reproducedcolors that match the original colors. This system would provide colormatching to be performed between a scanner and a printer without the useof expensive additional photometric equipment such as aspectrophotometer. The profiling results should be device independent sothat the equipment can be substituted. The profiling should also bepreformed in a single step to reduce the time required for profiling andto avoid any scanner-setting errors.

BRIEF SUMMARY OF THE INVENTION

[0063] The present invention is to provide a color reproduction systemthat addresses the aforementioned problems. The present inventionproduces accurate printer ICC profiles from a scanner. The presentsystem also produces a scanner ICC profile however the scanner profileis not a requirement of the invention. A scanner profile is created thatcan be used to process images intended for any output device. A printerprofile is created that can be used to print images from any source.Using a scanner compensation table allows any scanner to function moreclosely to a spectrophotometer and ensures more accurate color datacollection than can normally be obtained from a scanner.

[0064] Another feature of the invention is to scan the scannercalibration target at the same time as the printer calibration target,and use these targets to fully calibrate both the scanner and printer.Scanning both targets simultaneously significantly reducesscanner-setting errors, ensures the color data in both targets ismeasured under identical conditions, and decreases the profilingprocess.

[0065] Another aspect of the invention is the compensation colortransform that improves the quality of the color reading produced by thescanner. The compensation transform compensates for the differencebetween how a scanner scans a photographic target and how it scans aprinted target. Photographic and printed materials all have uniquespectral properties that a scanner is sensitive to and can measure. Thedifferences between photographic and printed materials are often largeenough to cause a scanner that has been properly calibrated forphotographic material to misread printed material. The algorithms of thepresent invention map the same RGB value from a scanner to differentCIEL*a*b* values when the RGB values come from patches with differentink values.

[0066] One embodiment of the invention is a scanner system comprising aphysical scanner, scanner driver software, scanner ICC profile, centralprocessing unit (CPU), storage means, monitor, printer, printer driver,printer ICC profile, profiling application, sets of compensationtransforms, an IT8 photographic target, and a print target printed bythe printer, wherein the scanner ICC profile is produced by thecompensation transforms. The print target and photograph target arescanned simultaneously and the profiling algorithms calculate accurateprinter ICC profiles.

[0067] Another embodiment of the present invention is a method ofprofiling, comprising the steps of printing a print target, placing andIT8 Q60 scanner target onto the print target to produce a combinedtarget, scanning the combined target, processing the scanner data toproduce a scanner ICC profile, processing the printer data to producedevice independent color values, selecting a compensation transform, andbuilding a printer ICC profile.

[0068] An additional aspect is the generation of a scanner profile thatcan be used to process images intended for any output device.Furthermore, a printer profile is created that can be used to printimages from any source.

[0069] Yet another feature is the use of a scanner compensation tablethat allows any scanner to function more closely to a spectrophotometerand ensures more accurate color data collection than can normally beobtained from a scanner.

[0070] Yet a further embodiment of the invention includes scanning boththe reference target and the print target simultaneously therebyreducing scanner-setting errors and ensuring the color data in bothtargets is measured under identical conditions. Scanning simultaneously,these targets can be used to fully calibrate both the scanner andprinter.

[0071] Another feature of the invention is a method of creating acompensation transform that uses the least squares algorithm to solvethe equation y=Ax where x is an array of CIELAB values from thecalibrated scanner, y is an array of compensated CIELAB values, and A isa matrix that transforms between x and y. The x array currently containsnon-linear combinations of the CIELAB values. The array x is defined as:

[0072] x[0]=L

[0073] x[1]=a

[0074] x[2]=b

[0075] x[3]=L²

[0076] x[4]=a²

[0077] x[5]=b²

[0078] x[6]=La

[0079] x[7]=Lb

[0080] x[8]=ab

[0081] x[9]=L³

[0082] x[10]=L²a;

[0083] x[11]=L²b;

[0084] x[12]=La²;

[0085] x[13]=Lab;

[0086] x[14]=Lb²;

[0087] x[15]=a³;

[0088] x[16]=a²b

[0089] x[17]=ab²;

[0090] x[18]=b³;

[0091] The matrix A can be computed by using the calibrated scanner andspectrophotometer data with the least-squares algorithm.

[0092] Another method involves creating the compensation table thattakes into account the fact that scanners read different inks and papertypes differently. A printer with more than three inks is generallycapable of printing exactly the same color with more than one differentcombinations of ink. Unfortunately, these different ink combinations maynot be read the same by a scanner because of the spectral differences ofthe inks. In addition, the scanner can see different colors as the samebecause of the differences in the inks. This embodiment of thecompensation transform uses different transforms for differentcombinations of inks and takes advantage of the fact that the ink valuesfor each patch in the print target are known.

[0093] A further aspect is to provide a color reproduction systemsuitable for the graphic arts, such as printings, sign making, and colorcorrection and also for medical imaging, and color imaging applications.

[0094] An additional embodiment is a method of profiling a color printerusing a scanner comprising the steps of printing a print target on saidcolor printer, placing a reference target onto the print target toproduce a combined target, and scanning the combined target on thescanner to produce a scanned image. The scanned image comprisesreference target data and print target data. Processing the referencetarget data produces a scanner profile, and processing the print targetdata with the scanner profile produces an uncompensated printer profiledata. The next step requires adjusting the uncompensated printer profiledata using a compensation transform. Finally, building a printer profileand storing the printer profile.

[0095] A further feature includes the printing performed without using aprinter profile so a full gamut is achieved. In addition, the referencetarget can be IT8. Yet a further aspect is where the compensationtransform is processed using the least squares algorithm.

[0096] An additional aspect includes wherein the compensation transformcompensates for ink differences, and in particular, to produce thecompensation transform. A further aspect compensates for paperdifferences. One aspect includes manually cropping the combined targetor automatic cropping of the combined target. A further aspect is forinputting data for the compensation transform, wherein such datarepresents the user's device type, paper type and/or ink type. Anotheraspect is wherein the uncompensated printer profile data is expressed asdevice independent colors pace values.

[0097] One embodiment of the invention is a method of producingcompensation transforms comprising the steps of generating a pluralityof color reference patches, scanning the patches to produce scannedcolor space values, measuring the patches with an optical measuringdevice to produce measured color space values, and creating acompensation table from the scanned color space values and the measuredcolor space values. Another aspect includes wherein the compensationtransform for CMYK inks with linear interpolation is processed using theformula y=af₀(x)+(1−a)f₁(x). The optical measuring device may be aspectrophotometer.

[0098] Another embodiment of the invention is for a color profilingsystem for producing a device independent printer profile comprising aprinter section having a printer driver and a printer device, whereinthe printer device prints a print target. There is a scanner sectionthat includes a scanner driver and a scanner device. A combined targetis generated with the print target and a reference target, wherein thecombined target is scanned by the scanner device to produce a combinedtarget data. There is a processing section for processing the combinedtarget data, wherein the processing section produces a scanner profileand uncompensated printer color patch readings in device independentcolor space values. There is a compensation transform module fortransforming the uncompensated printer color patch readings intocompensated printer color patch readings, and a processing section forprocessing the compensated printer color patch readings into a printerprofile.

[0099] Still other features, objects and advantages of the presentinvention will become readily apparent to those skilled in this art fromthe following detailed description, wherein only one embodiment of theinvention is described, simply by way of illustration for carrying outthe invention. As will be realized, the invention is capable of otherand different embodiments, and its several details are capable ofmodifications in various obvious respects, all without departing fromthe invention. Moreover, it should be noted that the language used inthe specification has been principally selected for readability andinstructional purposes, and not to limit the scope of the inventivesubject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

[0100] The present invention will be readily understood by the followingdetailed description in conjunction with the accompanying drawings,wherein like reference numerals designate like structural elements, andin which:

[0101]FIG. 1 is a block diagram illustrating a prior art profilingsystem.

[0102]FIG. 2 is a block diagram of a present invention profiling system.

[0103]FIG. 3(a) is a flow chart of the profiling process.

[0104]FIG. 3(b) is a flow chart of the profiling process.

[0105]FIG. 4 shows reference patches generated for a CMYK device.

[0106]FIG. 5 depicts the building of the compensation transforms.

[0107] FIGS. 6(a)(b)(c) shows the process used to fill in the table.

DETAILED DESCRIPTION OF THE INVENTION

[0108] A prior art profiling system is illustrated in FIG. 1, having aprinter section 5 containing a printer 10, an associated printer driverprogram 20 and a printer ICC profile 30. The printer driver 20 is theinterface between the user and the printer section 5, and has thesoftware commands to control the printer 10. The printer ICC profile 30contains data and information that is used by the digital processingschemes to make the color reproductions. A scanner section 60 has ascanner device 70, a scanner driver 80, and a scanner ICC profile 90.The computer or CPU 100 is the processing and memory means for thesystem and is interconnected to the various components, which mayinclude any number of image source devices such as a digital camera,internet access, DVD, and CD-ROM. A monitor 95 provides the visualinterface to the user and a monitor ICC profile 105 provides the colorcorrection for the display.

[0109] In a prior art operation, the CPU 100 sends a print instructionto the print driver 20 that represents the color print target 40. Theprint driver 20 issues the print command for the color print target 40,wherein the RGB data representing the print target is altered by theprinter ICC profile 30, and the corrected print target 40 is printed bythe printer 10 as the output image.

[0110] The scanner 70 scans the print target 40, to produce a digitizedprint target image. The digitized print target image goes through thescanner driver 80 and the RGB digital data is altered by the scanner ICCprofile 90. The corrected digital print target data is then processed bythe CPU 100 wherein a software application compares the color spacevalues of the print target data to the color space values some referencetarget. Based on this comparison, device dependent correction profiledata is calculated and stored and used as the printer ICC profile 30 forall further printouts by the printer 10.

[0111] Scanner calibration is accomplished by scanning a reference printtarget 50 with the scanner 70. The digitized reference target image goesthrough the scanner driver 80 and the RGB reference target digital datais altered by the scanner ICC profile 90 to account for scanner errors.The corrected reference target digital data is then processed by the CPU100 wherein a software application compares the color space values ofthe scanned reference target data to the color space values of thereference target that accompany the reference target and are usuallyobtained in a factory setting using a spectrophotometer. Based on thiscomparison, device dependent correction profile data is calculated andstored to customize the scanner ICC profile for all future scanning bythe scanner 70.

[0112] A representation of the profiling system of the present inventionis illustrated in FIG. 2. Printer section 5 contains a printer 10 withan associated printer driver program 20. The printer driver 20 is theinterface between the user and the printer 10, and has the softwarecommands to control the printer 10. In the profiling system, the printerICC profile 140 is bypassed to produce a raw printout.

[0113] The central processing unit (CPU) or computer 100 isinterconnected with the printer section 5. The profiler 110 is asoftware program resident in the computer 100 and communicates with theprinter 10 through the print driver 20 to produce a color print target40, without profiling. The print target 40 is typically a set of colorpatches, and is oriented onto the same page 45 as the reference target50. In one embodiment the reference target 50 is attached to the lowerhalf of the page 45 with tape. Other locations and securing means arewell within the scope, of the invention. The reference target 50 is apredetermined standard that comes with color space values, and is usedin conjunction with the profiling software 110 to create a scanner ICCprofile 130 as well as provide the reference for the printer ICC profile140.

[0114] The scanner section 60 contains the scanner assembly 70, and thescanner driver 80. The combination of the scanner 70 and the scannerdriver software 80 produce an RGB image of the image that is scanned. Asshown, the combined reference target 50 and the print target 40 arescanned simultaneously to produce an RGB image that is processed by theprofiling software 110. The combined image may be cropped on the monitor95 manually, or it may be automatically cropped to isolate the twoimages from the single scanned image. The profiler 110 processes thereference target data to produce the scanner ICC profile 130.

[0115] The print target data is processed by the profiler 110 using thescanner ICC profile 130 to produce uncompensated color space values. Theprofiling software 110 processes the uncompensated print target datausing compensation transforms 150. Compensation transforms 150 arecreated for a scanner by using print targets 160 on various types ofpaper, and varying inks to assemble a list of different printpossibilities. The print targets 160 are measured by optical instruments180 such as a spectrophotometer and also scanned by a scanner 170 toproduce tables 190 for the various inks and paper types.

[0116] The profiler 110 produces a new scanner ICC profile 130 and a newprinter ICC profile 140 to produce accurate print reproductions. Theprinter ICC profile 140 is communicated is stored and utilized by theprinter section 5. The scanner ICC profile 130 is stored and used by thescanner section 60 to produce accurate reproductions.

[0117] The steps of the present invention are depicted in FIG. 3(a) andFIG. 3(b). In the first step 200, the profiler generates an instructionset for a set of color print patches for the print target. These printpatches provide a representation of the entire color space of theprinter. For an RGB printer, the patches might contain every possiblecombination of red, green, and blue where the red, green, and blue inkscan only have the values of 0, 32, 64, 128, 160, 192, 224, or 256. Sucha patch set would have 512 patches.

[0118] The instruction set for these patches are passed to the printdriver in the next step 210, and then sent directly to the printer forprinting the target 220. In one embodiment the printer driver translatesthe instruction set into print commands and issues them to the printerwith no color correction or profiling. The print target can be printedwith no profiling because the present system replaces the profiles, andbecause most profiles reduce the color gamut that a printer can print. Aprofile built on top of such a profile is inferior to a profile builtwithout such a profile.

[0119] There are certain situations in which a profile can not bebypassed, such as when printing occurs through the standard print driverof an inexpensive home printer. Most of these printers use CMYK inks,but the print drivers are RGB. The RGB to CMYK transform is a profilethat can not be avoided. In other cases, a built-in profile mightproduce better results because of some non linearity of the printer thatcan not be captured by the print target.

[0120] In the next step 230, the print target and the reference targetare placed on the same sheet. In one embodiment an IT8 reference targetis taped to the lower portion of the print target sheet. Combining thetargets prevents many significant scanner setting problems (such as autowhite balancing) from damaging the readings. The reference target has anassociated data file that specifies the CIEL*a*b* values of its colorpatches which are obtained in a factory setting.

[0121] The combination of the reference target and the print target onsingle sheet of paper is scanned by the scanner 240 and a data set ofthe combined reference target and print target is generated. Next, 250the scanner output data set passes through the scan driver resulting inan output that is an RGB image with the combined targets.

[0122] The reference target and the print target are located andidentified from the single image 260. In one embodiment the two targetsare cropped either manually or automatically. Manual cropping isaccomplished by displaying the image on the monitor, wherein the userplaces crop points on each of the corners of the reference target andthe print target. Automatic cropping uses a software algorithm toidentify the respective targets. With proper alignment andstandardization, it is possible to eliminate cropping by having thelocations of the targets predefined.

[0123] The reference target image is processed in step 270 to produce alist of reference target RGB values for each patch. The reference RGBvalues are processed by the profiler to build a scanner ICC profile 280.This scanner ICC profile allows images to be scanned very accurately bythe scanner. However this is not the only purpose of the scanner ICCprofile.

[0124] The scanner ICC profile is also processed with the printer RGBvalues in step 290 to produce uncompensated CIEL*a*b* values. Thetransform that was used to create the scanner ICC profile may also beused. In large part, these CIEL*a*b* values are now independent ofindividual differences between scanners. Any errors in the data arecommon to most scanners.

[0125] In order to adjust the uncompensated values, information aboutthe paper, inks, and possibly even the device are required. This is oneof the elements that distinguish the present invention. Although thereare some systems that perform profiling functions, none of the priorsystems utilize information about the paper, inks or device types in theprofiling, and this information allows the present system to producehighly accurate scanning.

[0126] The compensation color transform improves the quality of thecolor reading produced by the scanner. For example, the algorithms ofthe present invention map the same RGB value from a scanner to differentCIEL*a*b* values when the RGB values come from patches with differentink values. Compensation transforms are created by generating printtargets on various types of paper, varying inks, and possibly evenvarious devices to assemble a list of different print possibilities. Theprint targets are measured by optical instruments such as aspectrophotometer and also scanned by the scanner to produce tables thatare used as part of the compensation transform.

[0127] The input for the paper type or ink may be predefined or a usercan input the information. The compensation transform is applied to theuncompensated CIEL*a*b* values 300. The compensation transformcompensates for the errors that are common to how most scanners read theparticular ink and paper combination being used. Since different ink andpaper combinations cause different errors, compensation transformsaddress this problem.

[0128] Once the user selects the properties of the printer such as theinks and paper type, the compensation transform adjusts theuncompensated CIEL*a*b values 310. And finally, 310 the compensatedCIEL*a*b* values are used by the profiler to build a printer ICC profilewhich is stored and used by the printer. If the compensation table hascorrectly compensated for the scanner errors, the printer profile willbe almost as accurate as a profile created using a spectrophotometer.

[0129] The compensation transforms are typically created at the factoryby printing print targets using many combinations of paper, inks, andprinters. Each print target is read by a spectrophotometer or similardevice and scanned by a calibrated scanner. The data from thespectrophotometer and the calibrated scanner is combined to form thetables for the compensation transform.

[0130] In the present invention, compensation transforms are created andare applied to the uncompensated CIEL*a*b data that results fromprocessing of the print RGB data with the scanner ICC profile. Althoughthere are various methods, two methods of creating the compensationtransform are described herein.

[0131] A first method of creating the compensation transform for thepresent invention uses the least squares algorithm to solve the equationy=Ax where x is an array of CIELAB values from the calibrated scanner, yis an array of compensated CIELAB values, and A is a matrix thattransforms between x and y. The x array currently contains non-linearcombinations of the CIELAB values. The array x is defined as:

[0132] x[0]=L

[0133] x[1]=a

[0134] x[2]=b

[0135] x[3]=L²

[0136] x[4]=a²

[0137] x[5]=b²

[0138] x[6]=La

[0139] x[7]=Lb

[0140] x[8]=ab

[0141] x[9]=L³

[0142] x[10]=L²a

[0143] x[11]=L²b

[0144] x[12]=La²

[0145] x[13]=Lab

[0146] x[14]=Lb²

[0147] x[15]=a³

[0148] x[16]=a²b

[0149] x[17]=ab²

[0150] x[18]=b³

[0151] The matrix A is computed by using the calibrated scanner andspectrophotometer data with the least-squares algorithm. Althoughleast-squares algorithms are well known in the industry, theimplementation of the algorithm at this juncture of the process isunique.

[0152] The second method of creating the compensation table is morecomplex, and takes into account the fact that scanners read differentinks in a different manner. A printer with more than three inks isgenerally capable of printing exactly the same color with more than onedifferent combinations of ink. Unfortunately, these different inkcombinations may not be properly read by a scanner because of thespectral differences of the inks. In addition, the scanner can readdifferent colors as the same because of the differences in the inks. Thetransform that uses the equation y=Ax could therefore never produceaccurate results since two identical input values would need to producetwo different output values.

[0153] A second embodiment of the compensation transform solves theproblem by using different transforms for different combinations ofinks. This embodiment takes advantage of the fact that the ink valuesfor each patch in the print target are known. FIG. 4 illustrates how thereference patches are generated for a CMYK device, although theinvention works with other color spaces. When the reference printpatches at the factory are created, the patch sets are composed of cubesof the primary inks (typically CMY). The reference CMYK print patch 400is printed for a K=0 patch 410, a K=50 patch 420, and a K=100 patch 430.Each additional ink has a set of cubes associated with it. In FIG. 4,black has three cubes for the three values of black to be used in thepatches. Additional inks beyond black would require the use of cubes forblack, the additional ink, and combinations of black and the additionalink.

[0154] For each value of K in the patches (three values are illustrated410, 420, and 430), all combinations of CMY at certain step sizes areincluded. These combinations of CMY patches form CMY cubes 440, 450, and460. If a CMY cube has step sizes of 0 and 100, the CMY patches in thecube would be (0,0,0), (0,0,100), (0,100,0), (0,100,100), (100, 0, 0),(100, 0, 100), (100, 100, 0), and (100,100, 100). The CMYK patches thatare printed are organized into groups that correspond to the differentlevels of K. Each group has the same K value and the CMY values from theCMY cube.

[0155] For each of the cubes in the reference print patches, acompensation transform is created. When the compensation is beingperformed, CIEL*a*b* values from the scanned print patches are runthrough the multiple transforms. The final output value is thencalculated by interpolating the output of the transforms based on theoriginal ink values used to create the print patches. For animplementation for CMYK inks that uses linear interpolation, theequation of the transform in this embodiment could be expressed as:

y=af ₀(x)+(1−a)f ₁(x)

[0156] where y is the compensated output, x is the uncompensated input,f₀(x) is the transform for the first K cube, f₁(x) is the transform forthe second K cube, and a is a scaling factor determined by the printpatch K value that indicates where the ink value is between the inkvalues for the first and second transform. The equation for a is:

a=(k−k ₀)/(k ₁ −k ₀)

[0157] where k is the K value for the scanned print patch, k₀ is the Kvalue for the first transform, and k₁ is the K value for the secondtransform. Note that only the transforms just above and just below thescanned print patch K value are used.

[0158] As illustrated in FIG. 5, the CIEL*a*b values can be representedas a slice for each value of K. The in gamut and out of gamut regionsare shown for K=100 (470), K=50 (480) and K=0 (490). The compensationtransforms are built in two stages. The first stage is to build the ingamut parts of the transforms. The in gamut parts are those CIEL*a*b*values that are in the color gamut of the printer for the ink values ofthe transform. As illustrated, the gamut is smaller when more K isadded, as represented in the larger in gamut at K=0.

[0159] For the purpose of explaining the invention more clearly, it willnow be assumed that the transform takes the form of a three-dimensionallook up table (3D LUT). The 3D LUT maps scanned uncompensated CIEL*a*b*values to compensated CIEL*a*b* values.

[0160] The in gamut part of the 3D LUT is built by first filling in thein gamut parts of the table. The process used to fill in the table isillustrated in FIGS. 6(a), (b) and (c), and for illustrative purposesthe CMYK color space is utilized. Each patch in the printer referencetarget is created with a unique CMYK value. For any transform, thepatches in its cube all have unique CMY values and the same K value.When these patches are read by a scanner and a spectrophotometer, eachCMY is matched to a scanned CIEL*a*b* value and a CIEL*a*b* value from aspectrophotometer. This matching is used to build a forward transformfrom the CMY values to the CIEL*a*b* values as shown in FIG. 6(a).

[0161] The forward table from CMY to scanned CIEL*a*b* values isinverted to produce a CIEL*a*b* to CMY transform in FIG. 6(b). When thisinverted transform is combined with the forward CMY to spectrophotometerCIEL*a*b* transform, a scanner to spectrophotometer transform results asshown in FIG. 6(c). This transform is used to fill in all of the ingamut parts of the 3D LUT.

[0162] The out of gamut parts of the 3D LUT are filled in by using thein gamut data points in the current transform combined with the in gamutpoints from other transforms. These data points are used with, forexample, the least squares algorithm, to build a set of transforms.Least square transforms used near in gamut LUT points primarily usepoints from the current ink value 3D LUT. Least square transforms usedfar away from in gamut points use more data points from other ink value3D LUTs. When all of the data points of the 3D LUT have been filled in,all of the out of gamut points are smoothed. Smoothing the pointsensures that the in gamut and out of gamut points match, and there arevarious smoothing algorithms available for smoothing.

[0163] Once the compensation tables are generated, the information ismade available to the profiling system to adjust the uncompensatedCIEL*a*b values. The compensation tables can be provided to the user asa software package or downloadable from the Internet.

[0164] It is well within the scope of the invention to incorporatevarying color spaces and image sources. The present invention has beenparticularly shown and described with respect to certain embodiments offeatures. However, it should be readily apparent to those of ordinaryskill in the art that various changes and modifications in form anddetails may be made without departing from the spirit and scope of theinvention. Additional objects and advantages of the present inventionmay be further realized and attained by means of the instrumentalitiesand combinations all within the scope of the claims. The drawings anddescription are to be regarded as illustrative in nature, and not asrestrictive

[0165] The foregoing description of the embodiments of the invention hasbeen presented for the purposes of illustration and description. It isnot intended to be exhaustive or to limit the invention to the preciseform disclosed. Many modifications and variations are possible in lightof this disclosure. It is intended that the scope of the invention belimited not by this detailed description, but rather by the claimsappended hereto.

What is claimed is:
 1. A method of producing compensation transformscomprising the steps of: generating a plurality of color referencepatches; scanning said patches to produce scanned color space values;measuring said patches with an optical measuring device to producemeasured color space values; and creating a compensation table from saidscanned color space values and said measured color space values.
 2. Amethod according to claim 1, wherein said compensation transforms forCMYK inks are processed for different levels of K using the formulay=af₀(x)+(1−a)f₁(x).
 3. A method according to claim 1, furthercomprising the step of interpolating between different levels of K.
 4. Amethod according to claim 1, wherein said color reference patchesrepresents different combinations of inks.
 5. A method according toclaim 1, further comprising the step of transforming a color value of acolor patch based on the original ink values of said color patch.
 6. Amethod according to claim 1, wherein said optical measuring device is aspectrophotometer.
 7. A method according to claim 1, wherein saidcompensation transforms are a set of look up tables that map scanneduncompensated CIEL*a*b values to compensated CIEL*a*b values.
 8. Amethod according to claim 1, wherein said compensation transforms are aset of look up tables that map scanned uncompensated CIEL*a*b values tocompensated CIEL*a*b values for different combinations of ink values. 9.A method according to claim 1, further comprising the step of mappingscanned CIEL*a*b values to optically measured CIEL*a*b values by using aCIEL*a*b to CMY transform for said scanning and a CMY to CIEL*a*btransform for said optical measuring device.
 10. A method according toclaim 1, wherein said compensation transforms are a set of look uptables constructed out of gamut CIEL*a*b values using the least squaresalgorithm with CIEL*a*b values in the tables that are in gamut.